package com.util;

import java.sql.SQLException;
import java.util.Calendar;
import java.util.List;

import com.data.dao.JDBCBase;
import com.iSea.ActivoJDBC;
import com.iSea.InflacionJDBC;


public class datosTabla {
	
public static String generarTablaHCA(String id){
	String resultado = "";
	try {
		
		ActivoJDBC obj_activo = JDBCBase.getHCAById(id);
		if(null != obj_activo)
		{
		Double deprec = 1/(Double.valueOf(obj_activo.getVidaUtil()));
		Calendar obj_calend = Calendar.getInstance();
		int anoActual = obj_calend.get(Calendar.YEAR);
		int anoInicio = Integer.parseInt(obj_activo.getFechaAlta().substring(0, 4));
		Double valorCompra = Double.valueOf(obj_activo.getValorCompra());
		Double valorRestar = valorCompra *	deprec;
		
		resultado = anoInicio + "," + valorCompra+"_";
			for(int i=anoInicio+1;i<=anoActual;i++)
				{
				resultado = resultado + i+","+(valorCompra - valorRestar) +"_";	
				valorCompra = (valorCompra - valorRestar);
				}
		}
		
		}
		catch (SQLException e) 
			{
				e.printStackTrace();
			}
		
	return resultado;
	}
	
public static String generarTablaCCA(String id, String idModelo){
	String resultado = "";
	try {
		
		ActivoJDBC obj_activo = JDBCBase.getCCAById(id, idModelo);
		if(null != obj_activo)
		{
		Double deprec = 1/(Double.valueOf(obj_activo.getVidaUtil()));
		Calendar obj_calend = Calendar.getInstance();
		int anoActual = obj_calend.get(Calendar.YEAR);
		int anoInicio = Integer.parseInt(obj_activo.getFechaAlta().substring(0, 4));
		Double valorReposicion = Double.valueOf(obj_activo.getValorReposicion());
		int numAnos = anoActual - anoInicio;
		Double valorRestar = numAnos *	deprec;
		valorRestar = 1 - valorRestar;
		
		
		resultado = anoInicio + "," + valorReposicion+"_";
			for(int i=anoInicio+1;i<=anoActual;i++)
				{
				resultado = resultado + i+","+(valorReposicion * valorRestar) +"_";	
				valorReposicion = (valorReposicion * valorRestar);
				}
		}
		
		}
		catch (SQLException e) 
			{
				e.printStackTrace();
			}
		
	return resultado;
	}

public static String generarTablaVNR(String id){
	String resultado = "";
	try {
		
		ActivoJDBC obj_activo = JDBCBase.getVNRById(id);
		if(null != obj_activo)
		{
		Double deprec = 1/(Double.valueOf(obj_activo.getVidaUtil()));
		Calendar obj_calend = Calendar.getInstance();
		int anoActual = obj_calend.get(Calendar.YEAR);
		int anoInicio = Integer.parseInt(obj_activo.getFechaAlta().substring(0, 4));
		Double valorCompra = Double.valueOf(obj_activo.getValorCompra());
		int numAnos = anoActual - anoInicio;
		Double valorRestar = numAnos *	deprec;
		valorRestar = 1 - valorRestar;
		
		
		resultado = anoInicio + "," + valorCompra+"_";
			for(int i=anoInicio+1;i<=anoActual;i++)
				{
				resultado = resultado + i+","+(valorCompra * valorRestar) +"_";	
				valorCompra = (valorCompra * valorRestar);
				}
		}
		
		}
		catch (SQLException e) 
			{
				e.printStackTrace();
			}
		
	return resultado;
	}

public static String generarTablaGPLA(String id)
{
	String resultado = "";
	try 
	{
			ActivoJDBC obj_activo = JDBCBase.getGPLAById(id);
			List<InflacionJDBC> obj_lista = JDBCBase.getInflacion();
			Calendar obj_calend = Calendar.getInstance();
			int anoActual = obj_calend.get(Calendar.YEAR);
			int anoInicio = Integer.parseInt(obj_activo.getFechaCompra().substring(0, 4));
			
			int count = 1;
			
			resultado = anoInicio + "," + obj_activo.getValoracionGPLAbyYEAR(obj_lista,anoInicio) +"_";
			for(int i=anoInicio+count;i<=anoActual;i++)
			{
			count++;
			resultado = resultado + i+","+ obj_activo.getValoracionGPLAbyYEAR(obj_lista,i) +"_";
			}
		
	}
	catch (SQLException e) 
	{
			e.printStackTrace();
	}
	
	return resultado;
}





	
	public static void main (String[] args){
		
		System.out.println(generarTablaHCA("28"));
		//System.out.println(generarTablaCCA("28", "8"));
		//System.out.println(generarTablaGPLA("28"));
		//System.out.println(generarTablaGPLA("28"));
	}
}
